package com.originskyseed.platform.count.service;

import java.util.List;
import java.util.Map;

import com.originskyseed.platform.core.base.BasePage;
import com.originskyseed.platform.count.vo.CountVideoEarningsVO;
import com.originskyseed.platform.user.model.UserInfo;

/**
 * Service接口类（OSI_ANCHOR_EARNINGS）
 *
 * @author wlj
 */
public interface ICountVideoEarningsService {

	/**
	 * 收益时间（查询主播流水）查询列表
	 *
	 * @param params
	 * @param page
	 * @return
	 * @throws Exception
	 */
	public BasePage<CountVideoEarningsVO> selectByTimeEarningsList(Map<String, Object> params, BasePage<CountVideoEarningsVO> page, UserInfo userInfo) throws Exception;

	/**
	 * 收益时间（查询主播流水）查询列表导出Excel
	 *
	 * @param params
	 * @return
	 * @throws Exception
	 */
	public List<CountVideoEarningsVO> selectByTimeEarningsListToExcel(Map<String, Object> params, UserInfo userInfo) throws Exception;

	/**
	 * 主播收益列表
	 *
	 * @param params
	 * @return
	 * @throws Exception
	 */
	public BasePage<CountVideoEarningsVO> countAnchorEarningsList(Map<String, Object> params, BasePage<CountVideoEarningsVO> page, UserInfo userInfo) throws Exception;

	/**
	 * 频道收益列表
	 *
	 * @param params
	 * @return
	 * @throws Exception
	 */
	public BasePage<CountVideoEarningsVO> countChannelEarningsList(Map<String, Object> params, BasePage<CountVideoEarningsVO> page, UserInfo userInfo) throws Exception;

	/**
	 * 频道收益列表导出Excel
	 *
	 * @param params
	 * @return
	 * @throws Exception
	 */
	public List<CountVideoEarningsVO> countChannelEarningsListToExcel(Map<String, Object> params) throws Exception;

	/**
	 * 主播收益列表导出Excel
	 *
	 * @param params
	 * @return
	 * @throws Exception
	 */
	public List<CountVideoEarningsVO> countAnchorEarningsListToExcel(Map<String, Object> params, UserInfo userInfo) throws Exception;

	/**
	 * 通过主播Id、roomId、直播时间 查询个人/公会开播房间流水
	 * 
	 * @param params
	 * @return
	 * @throws Exception
	 */
	public String countAnchorEarnins(Map<String, Object> params) throws Exception;

	/**
	 * 观看直播用户数
	 * 
	 * @param params
	 * @return
	 * @throws Exception
	 */
	public int countPlayerViewLivePersons(Map<String, Object> params) throws Exception;

	/**
	 * 选择家族下主播列表信息
	 *
	 * @param params
	 * @return
	 * @throws Exception
	 */
	public List<CountVideoEarningsVO> selectAnchorInfoOnFamilyList(Map<String, Object> params) throws Exception;

	/**
	 * 选择家族下频道列表信息
	 *
	 * @param params
	 * @return
	 * @throws Exception
	 */
	public List<CountVideoEarningsVO> selectChannelInfoOnFamilyList(Map<String, Object> params) throws Exception;

	/**
	 * 通过主播Id和类型统计主播直播时长
	 * 
	 * @param params
	 * @return
	 * @throws Exception
	 */
	public int countAnchorLiveTimeByAnchorIdAndType(Map<String, Object> params) throws Exception;

	/**
	 * 通过主播Id查询有效天数
	 * 
	 * @param params
	 * @return
	 * @throws Exception
	 */
	public int countAnchorLiveDayByAnchorId(Map<String, Object> params) throws Exception;

	/**
	 * 通过主播Id查询个人/公会开播房间流水
	 * 
	 * @param params
	 * @return
	 * @throws Exception
	 */
	public String countAnchorEarninsByAnchorId(Map<String, Object> params) throws Exception;

}
